<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>时间戳</title>
<!--autor: carriehuang | QQ:453555909 | 转载需注明原处-->
<head>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        body{

        }
        .wrap{
            width:100%;
            height:100px;
           font-size: 40px;
        }

    </style>
</head>
<body>
<div class="wrap" id="j_wrap1"></div>
<div class="wrap" id="j_wrap2"></div>

<script type="text/javascript">

    window.onload=function(){
        var oWrap = document.getElementById("j_wrap1");
        var oWrap2 = document.getElementById("j_wrap2");
        var oDate = new Date();
        var str='';
        var timer = null;
        oDate.getFullYear();//年
        oDate.getMonth();//月
        oDate.getDate();//日
        oDate.getDay();//周
        oDate.getHours();//时
        oDate.getMinutes();//分
        oDate.getSeconds();//秒

        //==动态获取当前时间==//
        getNowDate();
        setInterval(function(){
            getNowDate();
        },1000);
        function getNowDate(){
            //每1秒都请求一次当前时间的年月日时分秒
            oDate = new Date();
            str =  oDate.getFullYear()+"年 "+oDate.getMonth()+"月"+oDate.getDate()+"日 "+oDate.getDay()+"周 "+addZero(oDate.getHours())+": "+addZero(oDate.getMinutes())+": "+addZero(oDate.getSeconds());
            oWrap.innerHTML =  str;
        }
        //==动态获取当前时间==//



        //==动态获取未来时间差==//
        //设定一个未来的时间
        var oNewDate = new Date(2018,8,22,10,54,00);
        getFutureDate(oNewDate);
        timer=setInterval(function(){
            getFutureDate(oNewDate,function(){
                oWrap2.innerHTML =  "距离2017年10月1日20:15:00 还剩: "+0+"日 "+"00"+": "+"00"+": "+"00"+": "+"00";
                alert("时间结束!");
            });
        },60);
        function getFutureDate(d,endFn){
            oDate = new Date();
            if((d-oDate)>0){
                //计算一个未来时间和现在的时间相差多少
                var time = (d-oDate)/1000;//原数据是以毫秒为单位 1000毫秒=1秒
                /* 60毫秒 = 1秒？
                 * 60秒=1分
                 * 60分=1小时
                 * 3600秒=1小时
                 * 86400秒=24小时 = 1天
                 * */
                //根据毫秒来换算时间
//            var day =  Math.floor(time/86400);
//            var hours =  Math.floor(time%86400/3600);
//            var minutes =  Math.floor(time%86400%3600/60);
//            var seconds = Math.floor(time%60);

                var day =  Math.floor(time/(60*60*24));
                var hours =  Math.floor(time/(60*60)%24);
                var minutes =  Math.floor(time/60%60);
                var seconds = Math.floor(time%60);

                var msec =  Math.floor((d-oDate)/10%100);
                oWrap2.innerHTML =  "距离2017年10月1日20:15:00 还剩: "+day+"日 "+addZero(hours)+": "+addZero(minutes)+": "+addZero(seconds)+": "+addZero(msec);
            }else{
                endFn&&endFn();
                clearInterval(timer);
            }

        }
        //==动态获取未来时间差==//

        //替换小于10秒的时间
        function addZero(t){
            return t<10?"0"+t:t;
        }

    }
</script>
</body>

</html>
